package br.com.faculdade.domain.service;

import br.com.faculdade.infrastructure.dao.HospedeDAO;
import br.com.faculdade.infrastructure.entity.Hospede;
import java.io.Serializable;
import java.util.List;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.TransactionPropagationType;
import org.jboss.seam.annotations.Transactional;
import org.jboss.seam.log.Log;

/**
 *
 * @author Kirmaier
 */
@AutoCreate
@Name("hospedeService")
@Transactional(TransactionPropagationType.SUPPORTS)
public class HospedeService implements Serializable {

    @Logger
    private Log log;
    @In
    private HospedeDAO hospedeDAO;

    public void alterar(Hospede hospede) {
        log.info("Invocando DAO para alterar");
        hospedeDAO.alterar(hospede);
    }

    public void cancelar() {
        log.info("Invocando DAO para cancelar");
        hospedeDAO.cancelar();
    }

    public Hospede criar() {
        log.info("Criando um novo Hospede");
        return new Hospede();
    }

    public void excluir(Hospede hospede) {
        log.info("Invocando DAO para excluir");

        hospedeDAO.excluir(hospede);
    }

    public Hospede obterPorId(Integer idhospede) {
        return hospedeDAO.obterPorId(idhospede);
    }

    public List<Hospede> obterPorParametros(String paramNome, String paramCPF) {
        log.info("Invocando DAO para pesquisa de Hospedes");
        return hospedeDAO.obterPorParametros(paramNome, paramCPF);
    }

    public void salvar(Hospede hospede) {
        log.info("Invocando DAO para persistir o objeto", hospede.getNome());
        hospedeDAO.salvar(hospede);
    }
}
